package com.nicolascarrascob.clientesoap;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

import org.json.JSONException;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.google.gson.JsonObject;
public class AddPaciente extends Activity {

	private String URL = Constantes.HOST
			+ "/ServicioWebClinica/services/FichaPacienteORMWS";
	private String NAMESPACE = "http://ws";
	
	EditText runEditText;
	EditText nombreEditText;
	EditText direccionEditText;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_paciente);
        runEditText = (EditText) findViewById(R.id.textRun);
        nombreEditText = (EditText) findViewById(R.id.textNombre);
        direccionEditText = (EditText) findViewById(R.id.textDireccion);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_add_paciente, menu);
        return true;
    }
    public void ingresar(View v) {
		JsonObject jsonObjectPaciente = new JsonObject();
		jsonObjectPaciente.addProperty("run", runEditText.getText()
				.toString());
		jsonObjectPaciente.addProperty("nombre", nombreEditText
				.getText().toString());
		jsonObjectPaciente.addProperty("direccion", direccionEditText
				.getText().toString());
		
		new AddPacienteBackground().execute(jsonObjectPaciente.toString());
	}
    class AddPacienteBackground extends AsyncTask<String, Void, String> {

		private ProgressDialog progressDialog;

		@Override
		protected void onPreExecute() {
			progressDialog = ProgressDialog.show(AddPaciente.this,
					"Clinica del Sur",
					"Espere mientras se agrega el paciente...", true);
			super.onPreExecute();
		}

		@Override
		protected String doInBackground(String... params) {

			String resultado = new String();
			String METHOD_NAME = "addPaciente";
			String SOAP_ACTION = NAMESPACE + "/" + METHOD_NAME;
			SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
			SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
					SoapEnvelope.VER11);
			soapEnvelope.dotNet = true;
			soapEnvelope.implicitTypes = true;
			soapEnvelope.setOutputSoapObject(request);

			request.addProperty("jsonPaciente", params[0]);

			HttpTransportSE aht = new HttpTransportSE(URL);

			try {
				aht.call(SOAP_ACTION, soapEnvelope);
				SoapPrimitive resultString = (SoapPrimitive) soapEnvelope
						.getResponse();
				resultado = resultString.toString();

			} catch (IOException e) {
				e.printStackTrace();
			} catch (XmlPullParserException e) {
				e.printStackTrace();
			}

			return resultado;
		}

		@Override
		protected void onPostExecute(String result) {
			super.onPostExecute(result);
			progressDialog.dismiss();
			// Valido que tenga la informacion necesaria
			if ("1".equals(result)) {
				Toast.makeText(AddPaciente.this,
						"Ingresada correctamente", Toast.LENGTH_LONG).show();
				finish();
			}else if("2".equals(result)){
				Toast.makeText(AddPaciente.this,
						"El paciente ya existe, ingrese otro paciente",
						Toast.LENGTH_LONG).show();
			}
			else {
				Toast.makeText(AddPaciente.this,
						"Campos incompletos, verifique la informacion",
						Toast.LENGTH_LONG).show();
			}
		}
	}

}
